package org.wedding.system.entity;

import java.math.BigDecimal;
import java.util.Date;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

/**
 * 用户信息表(UserInfo)实体类
 *
 * @author songkaiyue
 * @since 2025-05-14 10:26:34
 */
@TableName(value = "user_info")
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class UserInfo implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 唯一标识
     */
    @Schema(description = "唯一标识")
    @TableId(type = IdType.ASSIGN_ID)
    private String id;

     /**
     * 登陆密码
     */
    @Schema(description = "登陆密码")
    @TableField(value = "pass_word")
    private String passWord;

    @TableField(exist = false)
    private String password;



    /**
     * 用户salt
     */
    @Schema(description = "用户salt")
    @TableField(value = "salt")
    private String salt;


     /**
     * 用户昵称
     */
    @Schema(description = "用户昵称")
    @TableField(value = "user_name")
    private String userName;


     /**
     * 手机号
     */
    @Schema(description = "手机号")
    @TableField(value = "phone")
    private String phone;


     /**
     * 头像地址
     */
    @Schema(description = "头像地址")
    @TableField(value = "icon_url")
    private String iconUrl;

    /**
     * 商家头像
     */
    @Schema(description = "头像地址")
    @TableField(value = "me_url")
    private String meUrl;


     /**
     * 用户角色:0:普通用户  1: 商家  2:管理员
     */
    @Schema(description = "用户角色: 0:普通用户  1: 商家  2:管理员 3超级管理员")
    @TableField(value = "role")
    private String role;


     /**
     * 是否是代理商:0:是  1：否
     */
    @Schema(description = "是否是代理商:0:是  1：否")
    @TableField(value = "is_agents")
    private String isAgents;


     /**
     * 我的余额
     */
    @Schema(description = "我的余额")
    @TableField(value = "amount")
    private BigDecimal amount;


     /**
     * 邀请新人数
     */
    @Schema(description = "邀请新人数")
    @TableField(value = "invited_new")
    private String invitedNew;


     /**
     * 收款人姓名
     */
    @Schema(description = "收款人姓名")
    @TableField(value = "pay_name")
    private String payName;


     /**
     * 银行卡账号
     */
    @Schema(description = "银行卡账号")
    @TableField(value = "pay_code")
    private String payCode;


     /**
     * 银行开户行
     */
    @Schema(description = "银行开户行")
    @TableField(value = "pay_bank")
    private String payBank;


     /**
     * 邀请码
     */
    @Schema(description = "邀请码")
    @TableField(value = "invited_code")
    private String invitedCode;


     /**
     * 邀请人id
     */
    @Schema(description = "邀请人id")
    @TableField(value = "invited_id")
    private String invitedId;


     /**
     * 商家名称
     */
    @Schema(description = "商家名称")
    @TableField(value = "merchant_name")
    private String merchantName;


     /**
     * 商家类型:0：婚车租赁  1：婚纱礼服  2：化妆摄影  3：酒店婚房
     */
    @Schema(description = "商家类型:0：婚车租赁  1：婚纱礼服  2：化妆摄影  3：酒店婚房")
    @TableField(value = "merchant_type")
    private String merchantType;


     /**
     * 联系人
     */
    @Schema(description = "联系人")
    @TableField(value = "contact")
    private String contact;


     /**
     * 联系电话
     */
    @Schema(description = "联系电话")
    @TableField(value = "contact_phone")
    private String contactPhone;


     /**
     * 营业执照图片地址
     */
    @Schema(description = "营业执照图片地址")
    @TableField(value = "license_url")
    private String licenseUrl;


     /**
     * 商家地址
     */
    @Schema(description = "商家地址")
    @TableField(value = "address")
    private String address;


     /**
     * 商家地区名
     */
    @Schema(description = "商家地区名")
    @TableField(value = "area")
    private String area;


     /**
     * 经度
     */
    @Schema(description = "经度")
    @TableField(value = "longitude")
    private String longitude;


     /**
     * 纬度
     */
    @Schema(description = "纬度")
    @TableField(value = "latitude")
    private String latitude;


     /**
     * 是否为推荐商家:0:是  1：否
     */
    @Schema(description = "是否为推荐商家:0:是  1：否")
    @TableField(value = "is_recommend")
    private String isRecommend;


     /**
     * 商家入驻状态:0:审核中  1:通过  2:未通过
     */
    @Schema(description = "商家入驻状态:0:审核中  1:通过  2:未通过")
    @TableField(value = "settle_in")
    private String settleIn;


     /**
     * 排序序号
     */
    @Schema(description = "排序序号")
    @TableField(value = "sort_num")
    private String sortNum;


     /**
     * 微信openId
     */
    @Schema(description = "微信openId")
    @TableField(value = "open_id")
    private String openId;


     /**
     * 用户在微信开放平台的唯一标识符
     */
    @Schema(description = "用户在微信开放平台的唯一标识符")
    @TableField(value = "union_id")
    private String unionId;


     /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    @TableField(value = "create_time")
    private String createTime;


     /**
     * 修改时间
     */
    @Schema(description = "修改时间")
    @TableField(value = "update_time")
    private String updateTime;


     /**
     * 删除标识：0:未删除  1:已删除
     */
    @Schema(description = "删除标识：0:未删除  1:已删除")
    @TableField(value = "is_deleted")
    private String isDeleted;


     /**
     * 创建人id
     */
    @Schema(description = "创建人id")
    @TableField(value = "create_user_id")
    private String createUserId;


     /**
     * 创建人
     */
    @Schema(description = "创建人")
    @TableField(value = "create_user_name")
    private String createUserName;


     /**
     * 创建人org
     */
    @Schema(description = "创建人org")
    @TableField(value = "create_org_id")
    private String createOrgId;


     /**
     * 更新时间
     */
    @Schema(description = "更新时间")
    @TableField(value = "modify_time")
    private Date modifyTime;


     /**
     * 更新人id
     */
    @Schema(description = "更新人id")
    @TableField(value = "modify_user_id")
    private String modifyUserId;


     /**
     * 更新人
     */
    @Schema(description = "更新人")
    @TableField(value = "modify_user_name")
    private String modifyUserName;


     /**
     * 说明
     */
    @Schema(description = "说明")
    @TableField(value = "description")
    private String description;


     /**
     * 排序号
     */
    @Schema(description = "排序号")
    @TableField(value = "sort_index")
    private Double sortIndex;


     /**
     * 租户id
     */
    @Schema(description = "租户id")
    @TableField(value = "tenant_id")
    private String tenantId;


     /**
     * 昵称
     */
    @Schema(description = "昵称")
    @TableField(value = "nick_name")
    private String nickName;


     /**
     * 电子邮箱
     */
    @Schema(description = "电子邮箱")
    @TableField(value = "email")
    private String email;


     /**
     * 用户状态 0正常 1停用
     */
    @Schema(description = "用户状态")
    @TableField(value = "status")
    private String status;


     /**
     * 最后一次登录时间
     */
    @Schema(description = "最后一次登录时间")
    @TableField(value = "login_date")
    private Date loginDate;


     /**
     * 关联主机构
     */
    @Schema(description = "关联主机构")
    @TableField(value = "tenant")
    private String tenant;


     /**
     * 错误次数
     */
    @Schema(description = "错误次数")
    @TableField(value = "error_count")
    private Integer errorCount;


     /**
     * 关联组织
     */
    @Schema(description = "关联组织")
    @TableField(value = "organ")
    private String organ;


     /**
     * 锁定时间
     */
    @Schema(description = "锁定时间")
    @TableField(value = "lock_time")
    private Date lockTime;

    @TableField(exist = false)
    private String token;

    @TableField(exist = false)
    private String routers;

    /**
     * 距离
     */
    @TableField(exist = false)
    private String distance;

    /**
     * 订单数量
     */
    @TableField(exist = false)
    private String orderNum;

    @TableField(exist = false)
    private String tenantName;
    @TableField(exist = false)
    private String roles;
    @TableField(exist = false)
    private String roleIds;

    @JsonProperty("nPassword")
    @TableField(exist = false)
    private String nPassword;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getPassWord() {
        return passWord;
    }

    public void setPassWord(String passWord) {
        this.passWord = passWord;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getSalt() {
        return salt;
    }

    public void setSalt(String salt) {
        this.salt = salt;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getIconUrl() {
        return iconUrl;
    }

    public void setIconUrl(String iconUrl) {
        this.iconUrl = iconUrl;
    }

    public String getMeUrl() {
        return meUrl;
    }

    public void setMeUrl(String meUrl) {
        this.meUrl = meUrl;
    }

    public String getRole() {
        return role;
    }

    public void setRole(String role) {
        this.role = role;
    }

    public String getIsAgents() {
        return isAgents;
    }

    public void setIsAgents(String isAgents) {
        this.isAgents = isAgents;
    }

    public BigDecimal getAmount() {
        return amount;
    }

    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    public String getInvitedNew() {
        return invitedNew;
    }

    public void setInvitedNew(String invitedNew) {
        this.invitedNew = invitedNew;
    }

    public String getPayName() {
        return payName;
    }

    public void setPayName(String payName) {
        this.payName = payName;
    }

    public String getPayCode() {
        return payCode;
    }

    public void setPayCode(String payCode) {
        this.payCode = payCode;
    }

    public String getPayBank() {
        return payBank;
    }

    public void setPayBank(String payBank) {
        this.payBank = payBank;
    }

    public String getInvitedCode() {
        return invitedCode;
    }

    public void setInvitedCode(String invitedCode) {
        this.invitedCode = invitedCode;
    }

    public String getInvitedId() {
        return invitedId;
    }

    public void setInvitedId(String invitedId) {
        this.invitedId = invitedId;
    }

    public String getMerchantName() {
        return merchantName;
    }

    public void setMerchantName(String merchantName) {
        this.merchantName = merchantName;
    }

    public String getMerchantType() {
        return merchantType;
    }

    public void setMerchantType(String merchantType) {
        this.merchantType = merchantType;
    }

    public String getContact() {
        return contact;
    }

    public void setContact(String contact) {
        this.contact = contact;
    }

    public String getContactPhone() {
        return contactPhone;
    }

    public void setContactPhone(String contactPhone) {
        this.contactPhone = contactPhone;
    }

    public String getLicenseUrl() {
        return licenseUrl;
    }

    public void setLicenseUrl(String licenseUrl) {
        this.licenseUrl = licenseUrl;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getArea() {
        return area;
    }

    public void setArea(String area) {
        this.area = area;
    }

    public String getLongitude() {
        return longitude;
    }

    public void setLongitude(String longitude) {
        this.longitude = longitude;
    }

    public String getLatitude() {
        return latitude;
    }

    public void setLatitude(String latitude) {
        this.latitude = latitude;
    }

    public String getIsRecommend() {
        return isRecommend;
    }

    public void setIsRecommend(String isRecommend) {
        this.isRecommend = isRecommend;
    }

    public String getSettleIn() {
        return settleIn;
    }

    public void setSettleIn(String settleIn) {
        this.settleIn = settleIn;
    }

    public String getSortNum() {
        return sortNum;
    }

    public void setSortNum(String sortNum) {
        this.sortNum = sortNum;
    }

    public String getOpenId() {
        return openId;
    }

    public void setOpenId(String openId) {
        this.openId = openId;
    }

    public String getUnionId() {
        return unionId;
    }

    public void setUnionId(String unionId) {
        this.unionId = unionId;
    }

    public String getCreateTime() {
        return createTime;
    }

    public void setCreateTime(String createTime) {
        this.createTime = createTime;
    }

    public String getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(String updateTime) {
        this.updateTime = updateTime;
    }

    public String getIsDeleted() {
        return isDeleted;
    }

    public void setIsDeleted(String isDeleted) {
        this.isDeleted = isDeleted;
    }

    public String getCreateUserId() {
        return createUserId;
    }

    public void setCreateUserId(String createUserId) {
        this.createUserId = createUserId;
    }

    public String getCreateUserName() {
        return createUserName;
    }

    public void setCreateUserName(String createUserName) {
        this.createUserName = createUserName;
    }

    public String getCreateOrgId() {
        return createOrgId;
    }

    public void setCreateOrgId(String createOrgId) {
        this.createOrgId = createOrgId;
    }

    public Date getModifyTime() {
        return modifyTime;
    }

    public void setModifyTime(Date modifyTime) {
        this.modifyTime = modifyTime;
    }

    public String getModifyUserId() {
        return modifyUserId;
    }

    public void setModifyUserId(String modifyUserId) {
        this.modifyUserId = modifyUserId;
    }

    public String getModifyUserName() {
        return modifyUserName;
    }

    public void setModifyUserName(String modifyUserName) {
        this.modifyUserName = modifyUserName;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public Double getSortIndex() {
        return sortIndex;
    }

    public void setSortIndex(Double sortIndex) {
        this.sortIndex = sortIndex;
    }

    public String getTenantId() {
        return tenantId;
    }

    public void setTenantId(String tenantId) {
        this.tenantId = tenantId;
    }

    public String getNickName() {
        return nickName;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public Date getLoginDate() {
        return loginDate;
    }

    public void setLoginDate(Date loginDate) {
        this.loginDate = loginDate;
    }

    public String getTenant() {
        return tenant;
    }

    public void setTenant(String tenant) {
        this.tenant = tenant;
    }

    public Integer getErrorCount() {
        return errorCount;
    }

    public void setErrorCount(Integer errorCount) {
        this.errorCount = errorCount;
    }

    public String getOrgan() {
        return organ;
    }

    public void setOrgan(String organ) {
        this.organ = organ;
    }

    public Date getLockTime() {
        return lockTime;
    }

    public void setLockTime(Date lockTime) {
        this.lockTime = lockTime;
    }

    public String getToken() {
        return token;
    }

    public void setToken(String token) {
        this.token = token;
    }

    public String getRouters() {
        return routers;
    }

    public void setRouters(String routers) {
        this.routers = routers;
    }

    public String getDistance() {
        return distance;
    }

    public void setDistance(String distance) {
        this.distance = distance;
    }

    public String getOrderNum() {
        return orderNum;
    }

    public void setOrderNum(String orderNum) {
        this.orderNum = orderNum;
    }

    public String getTenantName() {
        return tenantName;
    }

    public void setTenantName(String tenantName) {
        this.tenantName = tenantName;
    }

    public String getRoles() {
        return roles;
    }

    public void setRoles(String roles) {
        this.roles = roles;
    }

    public String getRoleIds() {
        return roleIds;
    }

    public void setRoleIds(String roleIds) {
        this.roleIds = roleIds;
    }

    public String getNPassword() {
        return nPassword;
    }

    public void setNPassword(String NPassword) {
        this.nPassword = nPassword;
    }
}

